package com.service.impl;

import com.dao.GoodtypeDao;
import com.dto.BaseDto;
import com.dto.MessageEnum;
import com.entity.Goodtype;
import com.page.PageInfo;
import com.service.GoodtypeService;
import org.springframework.stereotype.Service;

import javax.annotation.Resource;
import java.util.List;
import java.util.Optional;

@Service("goodtypeService")
public class GoodtypeServiceImpl implements GoodtypeService {
    @Resource
    GoodtypeDao goodtypeDao;
    public Goodtype getByGtid(String gtid){
      return goodtypeDao.getByGid(gtid);
    }
    //业务逻辑层，根据业务逻辑确定返回给页面的消息和状态以及对象
    public BaseDto<Goodtype> getAll(){
        List<Goodtype> goodtypes = goodtypeDao.getAll();
        //通过判断dao层返回的对象的集合大小来说明本次查询是成功还是失败 如果大于0成功有返回的结果集，否则就没有查到东西就是失败
        MessageEnum messageEnum = goodtypes.size() > 0?MessageEnum.SELECT_ADMINBYPAGE_SUCCESS:MessageEnum.SELECT_ADMINBYPAGE_FAIL;
        BaseDto<Goodtype> dto = new BaseDto<>(messageEnum,goodtypes);
        return dto;
    }

    public BaseDto<Goodtype> getAllByPage(PageInfo pageInfo){
        List<Goodtype> goodtypes = goodtypeDao.getAllByPage(pageInfo);
        //通过判断dao层返回的对象的集合大小来说明本次查询是成功还是失败 如果大于0成功有返回的结果集，否则就没有查到东西就是失败
        MessageEnum messageEnum = goodtypes.size() > 0?MessageEnum.SELECT_ADMINBYPAGE_SUCCESS:MessageEnum.SELECT_ADMINBYPAGE_FAIL;
        BaseDto<Goodtype> dto = new BaseDto<>(messageEnum,goodtypes);
        dto.setObj(pageInfo);
        return dto;
    }


    public BaseDto<Goodtype> searchNameByPage(PageInfo pageInfo,String adname){
        List<Goodtype> goodtypes = goodtypeDao.searchNameByPage(pageInfo,"%"+adname+"%");
        //通过判断dao层返回的对象的集合大小来说明本次查询是成功还是失败 如果大于0成功有返回的结果集，否则就没有查到东西就是失败
        MessageEnum messageEnum = goodtypes.size() > 0?MessageEnum.SEARCHADMIN_SUCCESS:MessageEnum.SEARCHADMIN_FAIL;
        BaseDto<Goodtype> dto = new BaseDto<>(messageEnum,goodtypes);
        dto.setObj(pageInfo);
        return dto;
    }

    /**
     * 根据主键查询
     * @param gtid
     * @return
     */
    public BaseDto getGoodtypeByGtid(String gtid){
        Goodtype goodtype = goodtypeDao.getGoodtypeByGid(gtid);
        MessageEnum messageEnum = Optional.ofNullable(goodtype).isPresent()?MessageEnum.SELECT_ADMINBYPK_SUCCESS:MessageEnum.SELECT_ADMINBYPK_FAIL;
        BaseDto dto = new BaseDto(messageEnum);
        dto.setT(goodtype);
        return dto;
    }

    /**
     * 添加一个实体
     * @param goodtype
     * @return
     */
    public BaseDto addGoodtype(Goodtype goodtype){
        int result = goodtypeDao.addGoodtype(goodtype);
        MessageEnum messageEnum = result>0?MessageEnum.ADDADMIN_SUCCESS:MessageEnum.ADDADMIN_FAIL;
        BaseDto dto = new BaseDto(messageEnum);
        dto.setT(goodtype);
        return dto;
    }
    /**
     * 修改实体
     */
    public BaseDto updateGoodtype(Goodtype goodtype){
        int result = goodtypeDao.updateGoodtype(goodtype);
        MessageEnum messageEnum = result>0?MessageEnum.UPDATEADMINBYPK_SUCCESS:MessageEnum.UPDATEADMINBYPK_FAIL;
        BaseDto dto = new BaseDto(messageEnum);
        dto.setT(goodtype);
        return dto;
    }
    public BaseDto updateGoodtypeByExample(){
        return null;
    }

    /**
     * 删除一个实体
     * @param gtid
     * @return
     */
    public BaseDto deleteGoodtypeByPrimayKey(String gtid){
        int result = goodtypeDao.deleteGoodtypeByPrimayKey(gtid);
        MessageEnum messageEnum = result>0?MessageEnum.DELETEADMINBYPK_SUCCESS:MessageEnum.DELETEADMINBYPK_FAIL;
        BaseDto dto = new BaseDto(messageEnum);
        return dto;
    }

    /**
     * 删除实体根据示例
     * @return
     */
    public BaseDto deleteGoodtypeByExample(){
        return null;
    }

}
